www.gusucode.com > VC++ 通达信系统设置V3.0-源码程序 > VC++ 通达信系统设置V3.0-源码程序/code/XXMPage.cpp
//Download by http://www.NewXing.com // XXMPage.cpp : implementation file // #include "stdafx.h" #include "tdxwcfg.h" #include "XXMPage.h" #include "EditXXMDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CXXMPage property page IMPLEMENT_DYNCREATE(CXXMPage, CPropertyPage) CXXMPage::CXXMPage() : CPropertyPage(CXXMPage::IDD) { //{{AFX_DATA_INIT(CXXMPage) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } CXXMPage::~CXXMPage() { } void CXXMPage::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CXXMPage) DDX_Control(pDX, IDC_XXM_LIST, m_XXMList); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CXXMPage, CPropertyPage) //{{AFX_MSG_MAP(CXXMPage) ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton) ON_BN_CLICKED(IDC_MODIFY_BUTTON, OnModifyButton) ON_BN_CLICKED(IDC_DELETE_BUTTON, OnDeleteButton) ON_NOTIFY(NM_DBLCLK, IDC_XXM_LIST, OnDblclkXxmList) //}}AFX_MSG_MAP END_MESSAGE_MAP() void CXXMPage::OnAddButton() { if(m_XXMNum >= 20) { MessageBox("消息面太多,不能再增加!","通达信",MB_OK|MB_ICONEXCLAMATION); return; } CEditXXMDlg dlg; dlg.m_bAdd = TRUE; if( dlg.DoModal() == IDOK ) { XXMList[m_XXMNum].XXMTopic = dlg.m_XXMTopic; XXMList[m_XXMNum].XXMType = dlg.m_XXMType; XXMList[m_XXMNum].XXMPath = dlg.m_XXMPath; XXMList[m_XXMNum].XXMTitleRow = dlg.m_nTitleRow; m_XXMNum++; FillItem(); } } void CXXMPage::OnModifyButton() { POSITION pos = m_XXMList.GetFirstSelectedItemPosition(); if(pos != NULL) { CurrentXXM = m_XXMList.GetNextSelectedItem(pos); CEditXXMDlg dlg; dlg.m_bAdd = FALSE; dlg.m_XXMTopic = XXMList[CurrentXXM].XXMTopic; dlg.m_XXMType = XXMList[CurrentXXM].XXMType; dlg.m_XXMPath = XXMList[CurrentXXM].XXMPath; dlg.m_nTitleRow= XXMList[CurrentXXM].XXMTitleRow; if( dlg.DoModal() == IDOK ) { XXMList[CurrentXXM].XXMTopic = dlg.m_XXMTopic; XXMList[CurrentXXM].XXMType = dlg.m_XXMType; XXMList[CurrentXXM].XXMPath = dlg.m_XXMPath; XXMList[CurrentXXM].XXMTitleRow = dlg.m_nTitleRow; FillItem(); } } } void CXXMPage::OnDeleteButton() { POSITION pos = m_XXMList.GetFirstSelectedItemPosition(); if(pos != NULL) { CurrentXXM = m_XXMList.GetNextSelectedItem(pos); if(MessageBox("你确定删除该消息面吗?","通达信",MB_OKCANCEL|MB_ICONEXCLAMATION) == IDOK) { for(int i = CurrentXXM;i < m_XXMNum-1;i++) XXMList[i] = XXMList[i+1]; m_XXMNum--; FillItem(); } } } BOOL CXXMPage::OnInitDialog() { CPropertyPage::OnInitDialog(); int i; m_ImageList.Create(16,16,ILC_COLOR4|ILC_MASK,1,1); HICON hIcon = ::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_NEWS)); m_ImageList.Add(hIcon); m_XXMList.SetImageList(&m_ImageList,LVSIL_SMALL); m_XXMList.SetExtendedStyle (LVS_EX_FULLROWSELECT); char *ColStr[3] = {"消息面名","消息类型","存放位置"}; int ColWidth[3] = {82,80,250}; LV_COLUMN lvColumn; lvColumn.mask = LVCF_WIDTH|LVCF_TEXT|LVCF_FMT|LVCF_SUBITEM; lvColumn.fmt = LVCFMT_LEFT; for(i = 0; i < 3;i++) { lvColumn.pszText = ColStr[i]; lvColumn.cx = ColWidth[i]; lvColumn.iSubItem = i; m_XXMList.InsertColumn (i,&lvColumn); } for(i = 0;i < g_XXMNum;i++) { XXMList[i].XXMTopic = g_XXMTopic[i]; XXMList[i].XXMType = g_XXMType[i]; XXMList[i].XXMPath = g_XXMPath[i]; XXMList[i].XXMTitleRow = g_XXMTitleRow[i]; } m_XXMNum = g_XXMNum; FillItem(); return TRUE; } extern int GetComboPos(int TypeInt); void CXXMPage::FillItem() { m_XXMList.DeleteAllItems(); int tempInt; LV_ITEM lvItem; lvItem.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_STATE; lvItem.state = 0; lvItem.stateMask = 0; lvItem.iSubItem = 0; lvItem.iImage = 0; for(int i = 0;i < m_XXMNum;i++) { lvItem.iItem = i; lvItem.pszText = XXMList[i].XXMTopic.GetBuffer(0); m_XXMList.InsertItem (&lvItem); tempInt = GetComboPos(XXMList[i].XXMType); if(tempInt != -1) m_XXMList.SetItemText(i,1,XXMTypeStr[tempInt]); m_XXMList.SetItemText(i,2,XXMList[i].XXMPath); } } void CXXMPage::OnDblclkXxmList(NMHDR* pNMHDR, LRESULT* pResult) { OnModifyButton(); *pResult = 0; } void CXXMPage::OnOK() { g_XXMNum = m_XXMNum; for(int i = 0;i < g_XXMNum;i++) { g_XXMTopic[i] = XXMList[i].XXMTopic; g_XXMType[i] = XXMList[i].XXMType; g_XXMPath[i] = XXMList[i].XXMPath; g_XXMTitleRow[i]= XXMList[i].XXMTitleRow; } CPropertyPage::OnOK(); }